【5分で読める】AWS上でEDA(Electronic Design Automation: 電子設計自動化)を利用するメリットと実現方法をまとめてみた【HPC】
クラウドコンピューティングの登場によりコンピュータリソースを所持する時代から、必要な時に必要な分だけ利用する時代に変わっています。
これは特にHPC分野でも有用で、以下のようなメリットがあり、高いコストパフォーマンスを実現します。
- コンピューティングリソースをすぐに利用できる(見積もり・選定・調達がない)
- 常に最新のリソースを利用できる(古いリソースがボトルネックにならない)
- 過剰・不足がない(必要な分だけ利用できる)
更にEDA (Electronic Design Automation: 電子設計自動化ツール) 分野で言えば、AWS上でFPGAインスタンスが利用できる他、大手EDAベンダーのMentorやCadenceでもAWSから直接プラットフォームにアクセスできるようにするなどよりクラウドで様々なワークフローが利用しやすい状況となっています。
今回はEDAをAWS環境で利用したい人向けに、AWSから提供されている「Optimizing Electronic Design Automation (EDA) Workflows on AWS」というドキュメントの内容をわかりやすくまとめてお伝えします。
ドキュメントはこちらの「電子設計オートメーション(EDA)」を参照してください。
AWSクラウドのメリット
主に以下のメリットが挙げられます。
- 生産性の向上: サーバに対して秒単位の課金のため、並列可能なワークフローを同時に実行して短時間で完了することが可能。
- 高可用性と耐久性: 地理的に離れたリージョンと低レイテンシーなアベイラビリティゾーンを併用することにより高可用性と耐久性が実現可能。
- 最適なコンピューティングリソースのマッチング: 求められるスループット、プロセッサ、コア数、メモリ、ストレージ要件を自由に選択でき低コストで高いEDA性能を達成。
- アップデートサイクルの加速: 常に最新のプロセッサ、ストレージ、ネットワーク技術を利用でき古いワークロードに引きずられない。
インスタンスとストレージの選択
まずは用途にあったEC2インスタンスのタイプとストレージソリューションを選択します。
インスタンスの選択
EDA分野では主に下記のインスタンスタイプが有用です。
- コンピューティングに最適化されたCx(C4 / C5)インスタンスファミリー
- メモリ利用に最適化されたRx(R4)インスタンスファミリー
- より多くのメモリが利用可能なX1(X1e)インスタンスファミリー
※ドキュメントではC4等の記述になっていますが、より最新のC5等も登場しているため追記しています。C5ではAVX-512が利用されています。
上記インスタンスタイプ等では必要に応じハイパースレッディングの無効化も可能です。
ストレージソリューション
AWSでは下記のようなストレージソリューションがあります。
- Amazon EBS: 高帯域なネットワークに接続されたローカルブロックストレージでEC2からマウントして利用。自動的に高可用性と耐久性を提供しアベイラビリティゾーン内で複製される。リアルタイムの容量変更が可能。
- インスタンスストレージ: EC2インスタンスに物理的に接続され高いスループットやIOPSを提供。EBSよりもパフォーマンスが必要な場合に利用。インスタンス停止時にデータは保存されない。
- Elastic File System (EFS): シンプルでスケーラブルなNFSのマネージドサービス。高可用性と耐久性を確保しつつ自動的にスケールし細かい管理が不要。
- Amazon S3: 99.999999999%の耐久性を提供するWebインターフェースのストレージ。SDKやコマンドラインツール等からHTTP RESTリクエストでアクセスする。
EDAワークフローのためのプライマリデータの保存にはS3がオススメです。処理を行う段階でEBSにコピーすることにより高速に利用できます。
従来のオンプレミス環境では初期のニーズが比較的小さいにもかかわらず大量のストレージを購入していましたが、必要に応じボリュームを増やすことができるこれらのストレージソリューションにより適切な投資のみで利用が可能です。容量の変更は手動でももちろん可能ですが、監視を行い必要なタイミングでAWS Lambda等を利用して自動変更させることも可能です。
従来の共有ストレージによりボトルネックが発生しているようなワークフローがある場合には、EBSとS3を組み合わせて共有ストレージの必要性を減らしたり無くすことがクラウドネイティブなアプローチになります。
AWS上のEDAソフトウェアの最適化
EDAソフトウェアのパフォーマンスを出すためにEC2インスタンスタイプとOSの最適な選択が必要です。
AWS利用者やAWS内部のシリコンデザインチームに基づく推奨の構成を下記のように提供しています。ボリュームが多いため一部を抜粋しますので、詳細は元のドキュメントをご参照ください。(ドキュメント作成時の最適な選択であることに注意してください)
EDAツールに対するインスタンスの選択
- フォーマル検証: c4.4xlarge, c4.8xlarge
- RTLシミュレーション – Interactive debugging: c4.4xlarge, c4.8xlarge(HT無効)
- RTLシミュレーション – バッチモード: r4.8xlarge 16BG/コア(HT無効)
- RTLシミュレーション – バッチモード with マルチスレッド最適化: c4.4xlarge, c4.8xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge
- RTLゲートレベルシミュレーション: c4.4xlarge, c4.8xlarge
- 配置配線: r4.8xlarge(244GB), r4.16xlarge(488GB), x1.16xlarge(976GB), x1.32xlarge(1952GB)(HT無効)
- ステートタイミング解析: r4.8xlarge(244GB), r4.16xlarge(488GB), x1.16xlarge(976GB), x1.32xlarge(1952GB)(HT無効)
OS最適化
- テストされたOS
- Amazon Linux
- CentOS 7.x
- Red Hat Enterprise Linux 7.x
- Ubuntu 16.04
- クロックソースをTSCに変更
- 最適なスピンロックの設定に変更
- ハイパースレッディング無効化
- ターボモード有効化
その他
- 最大 25 Gbpsの拡張ネットワーキング
-
Amazon EBS 最適化
- カーネル仮想メモリ
クラウドに最適化されたアーキテクチャ
クラウド環境では、従来のように単一のクラスタを共有すること無く、ワークロード毎に固有のクラスタを構築することが可能です。この構成はセキュリティやサイジング、環境分離、プロジェクトベースの費用配分など多くの利点があります。
この図ではジョブの種類ごとに分類されており、全体で必要なジョブス ケジューラ、ライセンスサーバ、およびディレクトリまたは認証サービスが含まれます。
AWSクラウドのセキュリティとガバナンス
クラウドは、従来のオンプレミス環境で行うことが困難な方法でデータ及びIPを保護するためのツールや構成を幅広く提供しています。
データ保護と主権のための独立した環境
以下のアーキテクチャでは高い可用性とセキュリティを両立できます。セキュリティグループはファイアウォールのように特定のリソースへのアクセスを厳密に制御し、SSH等の安全なプロトコルのみ許可できます。
ユーザ認証
AWS上でも既存に技術を適用することが可能です。多くの組織では、既存のLDAP、Microsoft Active Directory、NIS等を認証に利用します。
クラウド上に新しいディレクトリを構築することもでき、AWS Direcctory Service for Microsoft ADはよく利用されるサービスです。
ネットワーク
Amazon VPCにより論理的に分離されたネットワークを作成して、必要に応じVPN等でオンプレミスのデータセンターや基幹ネットワークに接続します。
セキュリティグループやネットワークACLを利用してVPC内のアクセス制御を細かく設定します。
データストレージと転送
AWSではデータを保護するための様々な方法を提供しています。
- AWS Key Management Service (KMS): データを暗号化するための暗号鍵を生成・管理できるマネージドサービス。ハードウェアセキュリティモジュールを利用している。様々なAWSサービスと連携可能。コンプライアンスのためにAWS CloudTrailにて全ての鍵利用ログが取得可能。
- Amazon EBS暗号化: EBSボリュームを暗号化可能。
- Amazon S3暗号化: S3でオブジェクトレベルに暗号化可能。
ガバナンスとモニタリング
AWSはガバナンスを強化し、状況を監視するためのサービスを提供しています。
- AWS Identity and Access Management (IAM): AWSサービスやリソースへのアクセスを管理・制御するサービス。
- Amazon CloudWatch: EC2、EBS、S3等のリソースを監視。CPU使用率、レイテンシー等様々なメトリクスを確認できる。
- Amazon CloudWatch Logs: ログデータを取り込みアラートを上げたり、ログの解析が可能。
- AWS CloudTrail: AWSに対するAPIアクセスを記録し、AWSマネジメントコンソール、SDK、コマンドラインツール等全ての操作の履歴を提供する。
- AWS Config: AWSリソースを評価して適切な設定の反映を自動化する。
- AWS Organizations: 複数のAWSアカウントをポリシーベースで管理することが可能。
まとめ
AWS環境ではオンプレミスで受けていた様々な制約から開放されて結果的に高いコストパフォーマンスを実現することが可能です。
特にHPC、EDA分野では物理リソースに依存しなくなることで、必要な時に大量のリソースを利用し、終わったら削除しながら加速的に回していくことが可能です。
こちらのドキュメント等を参考にしつつ、AWSを活用して行きましょう!